#ifndef __IEVENT__
#define __IEVENT__

#include "Atoms.h"

struct IEvent
{
	IEvent() { }
	IEvent( const IEvent& event ) : point( event.point ), prevPoint( event.prevPoint ), lPressed( event.lPressed ), rPressed( event.rPressed ) {}
	~IEvent() {	}

	MPoint		point;
	MPoint		prevPoint;
	bool		lPressed;
	bool		rPressed;
};

class MouseEvents
{
public:
	virtual void track( bool isTrackOn ) { }
	//virtual void mouseMove( const IEvent& event ) = 0
	virtual void dragMouse( const IEvent& event ) { }
	virtual void wheelMove( const IEvent& event ) { } // event.prevPoint.x is WHEEL_DELTA_PARAM
	virtual void leftMouseDown( const IEvent& event ) { }
	virtual void leftMouseUp( const IEvent& event ) { }
	virtual void rightMouseDown( const IEvent& event ) { }
	virtual void rightMouseUp( const IEvent& event ) { }

	//virtual bool rollOver( const IEvent& event ) { return true; }
	//virtual bool rollOut( const IEvent& event ) { return true; }
};

#endif